<?php
/**
 * アプリケーションクラス
 * 
 * @package      App
 * @subpackage   App
 * @author       $Author:$
 * @version      $Id:$
 */
/**
 * プロジェクトルートパス
 */
define('_BEAR_APP_HOME', realpath(dirname(__FILE__)));

class App
{

    /**
     * ID
     */
    const ID = 'Appaaaaaaaa';

    /**
     * アプリ名
     */
    const NAME = 'BEAR Application';

    /**
     * バージョン
     */
    const VERSION = '0.0.3';
    
    /**
     * モバイル対応設定
     * 
     * SUPPORT_NONE:非対応
     * SUPPORT_IMG: 絵文字IMG変換
     */
    const MOBILE_SUPPORT = BEAR_Page::SUPPORT_IMG;

    /**
     * デバック
     */
    public static $debug = true;

    /**
     * セッションオプション
     * 
     * @var array
     *   +engine エンジン ENGINE_NONE | ENGINE_FILE | ENGINE_DB | ENGINE_MEMCACHE
     *   +path セッションパス
     *     file /tmp/ （省略可)
     *     DB mysqli://user:password@localhost/db
     *     memchace array('host1','host2')
     *   +idle アイドル時間
     *   +expire セッション切れ時間(秒)
     */
    public static $sessionOptions = array('engine'=>BEAR_Session::ENGINE_FILE, 'idle' => 300, 'expire' => 3000);

    /**
     * キャッシュオプション
     * 
     * @var array
     *   +engine キャッシュエンジン ENGINE_NONE | ENGINE_MEMCACHE | ENGINE_LITE
     *   +use キャッシュ使用
     *   +path array('host1', 'host2')(memcache)
     *   +defaultTime  デフォルトキャッシュ時間
     */
    public static $cacheOptions = array('engine'=> BEAR_Cache::ENGINE_LITE, 'active'=>true, 'defaultLife'=>10, 'path'=>array('localhost'));

    /**
     *  エージェントレター
     * 
     */
    public static $ua = BEAR_Agent::UA_PC;

	/**
	 * smtpホスト
	 *
	 * SMTP_HOST
	 */
	const SMTP_HOST = 'localhost';
	
    /**
     * 認証タイプ
     *
     * auth_general
     */
    const AUTH_GENERAL = 'auth_general';

    /**
    * 認証タイプ
    *
    * auth_member
    */
    const AUTH_MEMBER = 'auth_member';

    /**
    * 認証タイプ
    *
    * auth_tool
    */
    const AUTH_TOOL = 'auth_tool';

	/**
	 * patrol_status
	 *
	 * @author moriwaki
	 */
	public static $patrol_status = array(0=>'未パトロール', 1=>'OK', 2=>'著作権侵害', 3=>'アダルト', 4=>'個人情報', 5=>'SPAM', 6=>'規約違反', 7=>'迷惑不快');
	 
    /**
     * コンストラクタ
     * 
     * .htaccessのphp valueによってアプリ動作プロパティを上書き
     */
    function __construct()
    {
        $mode = $_SERVER['bearmode'];        
        switch ($mode) {
            case 1 :
                //開発モード
                self::$debug = true;
                App_DB::$default = 'mysqli://root@oyakata/bb';
                break;
            default :
                self::$debug = false;
                //ライブサーバー
                ;
                break;
        }
        BEAR::init();
    }

    /**
     * アプリケーション共通ページの初期化
     *
     * @param    void
     * @return   void
     * @access   public
     */
    public function onApp()
    {}

    /**
     * アプリケーションエラーハンドラー
     * 
     * @see http://pear.php.net/manual/ja/core.pear.pear-errorstack.php
     */
    public static function onError(array $error)
    {}

    /**
     * アプリケーションログ
     */
    public static function onAppLog(array $log)
    {}

    /**
     * リソースログ (CUDサイドエフェクト)
     */
    public static function onResourceLog($method, $uri, array $values)
    {}

    /**
     * シャットダウン
     * 
     * スクリプト終了時に呼ばれます。画面出力はできません。
     */
    public static function onShutdown($outputBuffer)
    {}
}

// BEAR
include ("BEAR/BEAR.php");
new BEAR();
// アプリケーション
new App();
?>
